package leetcode_100;

/**
 *@author 周杨
 *RemoveDuplicatesfromSortedArray_26 把一个数组中重复数字去掉
 *describe: 用哨兵做监督 同时增加标识 判断当前是否有重复操作 AC 96%
 *2018年5月14日 下午6:45:57
 */
public class RemoveDuplicatesfromSortedArray_26 {

	public static void main(String[] args) {
		RemoveDuplicatesfromSortedArray_26 test=new RemoveDuplicatesfromSortedArray_26();
		int nums[]=new int[] {0,0,1,1,1,2,2,3,3,4};
		int nums1[]=new int[] {1,2};
		int nums2[]=new int[] {1,2,3};
		System.out.println(test.removeDuplicates(nums));

	}
	public int removeDuplicates(int[] nums) {
		boolean flag=false;
		if(nums.length<=1)
			return nums.length;
		int count=1,index=1;
		for(int i=1;i<nums.length;++i) {
			if(nums[i]==nums[i-1]) {
				if(!flag) {//如果没有初试化
					index=i;
					flag=true;
				}
			}
			else {
				if(flag) {
					nums[index]=nums[i];
					++index;
				}
				++count;
			}
		}
		return count;
	}
}
